home *** CD-ROM | disk | FTP | other *** search
- /* TIMER.H
- *
- * TempoTimer, v1.10
- *
- * Copyright 1994 Petteri Kangaslampi and Jarno Paananen
- *
- * This file is part of the MIDAS Sound System, and may only be
- * used, modified and distributed under the terms of the MIDAS
- * Sound System license, LICENSE.TXT. By continuing to use,
- * modify or distribute this file you indicate that you have
- * read the license and understand and accept it fully.
- */
-
-
- #ifndef __TIMER_H
- #define __TIMER_H
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
-
- /****************************************************************************\
- *
- * Function: int tmrGetScrSync(ushort *scrSync);
- *
- * Description: Calculates the screen synchronization value for timer
- *
- * Input: ushort *scrSync pointer to screen synchronization
- * value
- *
- * Returns: MIDAS error code.
- * Screen syncronization value used with tmrSyncScr() is stored
- * in *scrSync.
- *
- \****************************************************************************/
-
- int CALLING tmrGetScrSync(ushort *scrSync);
-
-
-
-
- /****************************************************************************\
- *
- * Function: int tmrInit(void);
- *
- * Description: Initializes TempoTimer.
- *
- * Returns: MIDAS error code
- *
- \****************************************************************************/
-
- int CALLING tmrInit(void);
-
-
-
-
- /****************************************************************************\
- *
- * Function: int tmrClose(void);
- *
- * Description: Uninitializes TempoTimer. MUST be called if and ONLY if
- * tmrInit() has been called.
- *
- * Returns: MIDAS error code
- *
- \****************************************************************************/
-
- int CALLING tmrClose(void);
-
-
-
-
- /****************************************************************************\
- *
- * Function: int tmrPlay(void (*play)(), SoundDevice *SD);
- *
- * Description: Starts playing music with the timer. Update rate set to 50Hz.
- *
- * Input: void (*play)() Music playing function
- * SoundDevice *SD Sound Device used for playing
- *
- * Returns: MIDAS error code
- *
- \****************************************************************************/
-
- int CALLING tmrPlay(void (*play)(), SoundDevice *SD);
-
-
-
-
- /****************************************************************************\
- *
- * Function: int tmrStop(void);
- *
- * Description: Stops playing music with the timer.
- *
- * Returns: MIDAS error code
- *
- \****************************************************************************/
-
- int CALLING tmrStop(void);
-
-
-
-
- /****************************************************************************\
- *
- * Function: int tmrSyncScr(ushort sync, void (*preVR)(), void (*immVR)(),
- * void (*inVR)());
- *
- * Description: Synchronizes the timer to screen refresh.
- *
- * Input: ushort sync Screen synchronization value returned
- * by tmrGetScrSync().
- * void (*preVR)() Pointer to the routine that will be
- * called BEFORE Vertical Retrace
- * void (*immVR)() Pointer to the routine that will be
- * called immediately after Vertical
- * Retrace starts
- * void (*inVR)() Pointer to the routine that will be
- * called some time during Vertical
- * Retrace
- *
- * Returns: MIDAS error code
- *
- * Notes: preVR() and immVR() functions must be as short as possible
- * and do nothing else than update counters or set some VGA
- * registers to avoid timer synchronization problems. inVR()
- * can take a longer time and can be used for, for example,
- * setting the palette.
- *
- \****************************************************************************/
-
- int CALLING tmrSyncScr(ushort sync, void (*preVR)(), void (*immVR)(),
- void (*inVR)());
-
-
-
-
- /****************************************************************************\
- *
- * Function: int tmrStopScrSync(void);
- *
- * Description: Stops synchronizing the timer to the screen.
- *
- * Returns: MIDAS error code
- *
- \****************************************************************************/
-
- int CALLING tmrStopScrSync(void);
-
-
-
- /****************************************************************************\
- *
- * Function: int tmrSetUpdRate(ushort updRate);
- *
- * Description: Sets the timer update rate, ie. the rate at which the music
- * playing routine is called
- *
- * Input: ushort updRate updating rate, in 100*Hz (5000=50Hz)
- *
- * Returns: MIDAS error code
- *
- \****************************************************************************/
-
- int CALLING tmrSetUpdRate(ushort updRate);
-
-
- #ifdef __cplusplus
- }
- #endif
-
-
- /****************************************************************************\
- * enum tmrFunctIDs
- * ----------------
- * Description: ID numbers for TempoTimer functions
- \****************************************************************************/
-
- enum tmrFunctIDs
- {
- ID_tmrGetScrSync = ID_tmr,
- ID_tmrInit,
- ID_tmrClose,
- ID_tmrPlay,
- ID_tmrStop,
- ID_tmrSyncScr,
- ID_tmrStopScrSync,
- ID_tmrSetUpdRate
- };
-
-
-
- #endif
-